package com.zzyl.nursing.domain;

import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import com.zzyl.common.annotation.Excel;
import com.zzyl.common.core.domain.BaseEntity;

/**
 * 老人入住信息对象 check_in
 * 
 * @author zzyl
 * @date 2025-10-16
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("老人入住信息实体")
public class CheckIn extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**
    * 主键，自增ID
    */
    @ApiModelProperty(value = "主键ID")
    private Long id;

    /**
    * 老人ID，关联老人信息表
    */
    @Excel(name = "老人ID，关联老人信息表")
    @ApiModelProperty(value = "老人ID，关联老人信息表")
    private Long elderId;

    /**
    * 老人身份证号码
    */
    @Excel(name = "老人身份证号码")
    @ApiModelProperty(value = "老人身份证号码")
    private String idCard;

    /**
    * 入住开始时间
    */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "入住开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "入住开始时间")
    private LocalDateTime checkInStartTime;

    /**
    * 入住结束时间（退住时填写，未退住可为空）
    */
    @Excel(name = "入住结束时间", readConverterExp = "退=住时填写，未退住可为空")
    @ApiModelProperty(value = "入住结束时间")
    private LocalDateTime checkInEndTime;

    /**
    * 护理等级（如：1-自理, 2-半护, 3-全护等）
    */
    @Excel(name = "护理等级", readConverterExp = "如=：1-自理,,2=-半护,,3=-全护等")
    @ApiModelProperty(value = "护理等级")
    private Integer careLevel;

    /**
    * 入住床位编号（如：A栋301-2床）
    */
    @Excel(name = "入住床位编号", readConverterExp = "如=：A栋301-2床")
    @ApiModelProperty(value = "入住床位编号")
    private String bedNumber;

    /**
    * 状态：0-已入住，1-已退住
    */
    @Excel(name = "状态：0-已入住，1-已退住")
    @ApiModelProperty(value = "状态：0-已入住，1-已退住")
    private Integer status;

    /**
    * 排序编号，用于前端展示排序
    */
    @Excel(name = "排序编号，用于前端展示排序")
    @ApiModelProperty(value = "排序编号，用于前端展示排序")
    private Integer sortOrder;

}
